# 功能模块：程序运行主入口
# 作者：dl
# 描述：程序运行主入口，前后端逻辑伪分离，前端为lusterUI，后端为lusterVisualization。
# 注意：前后在部分内容上难以做到完全分离，vtk引擎渲染和前端页面刷新需要同时用到，因此存在
# 前端调用后端的实例，后端调用前端的实例

from threading import *

from webCom.lusterUI import lusterUI
from visualizationCom.lusterVisualization import lusterVisualization
import nest_asyncio

nest_asyncio.apply()

# 先定义前后端实体类
webUi = lusterUI()
visualization = lusterVisualization(webUi.state, webUi.ctrl)  # 实在无法解耦state

visualization.run()

webUi.drawUI(visualization)

if __name__ == "__main__":
  webUi.server.start()
  # webUi.server.start(host='0.0.0.0',port=8090)
